package com.uade.tp.negocio;

import java.util.Vector;

import com.uade.tp.negocio.view.ProductoView;
import com.uade.tp.persistencia.AdministrarPersistenciaProducto;


public class Producto {
	
	private static String ESTADO_ACTIVO = "Activo";
	private static String ESTADO_INACTIVO = "Inactivo";
	
	private String nombre;
	private String proveedor;
	private boolean estado;

	
	public Producto(Producto producto) {
		this.nombre = producto.getNombre();
		this.proveedor = producto.getProveedor();
		this.estado = true;
		
		AdministrarPersistenciaProducto.getInstancia().insert(this);
	}
	
	public Producto(String nombre,String proveedor) {
		this.nombre = nombre;
		this.proveedor = proveedor;
		this.estado = true;
		
		AdministrarPersistenciaProducto.getInstancia().insert(this);
	}
	public Producto() {

	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre.trim();
	}
	public String getProveedor() {
		return proveedor;
	}
	public void setProveedor(String proveedor) {
		this.proveedor = proveedor;
		
		AdministrarPersistenciaProducto.getInstancia().update(this);
	}

	public boolean isEstado() {
		return estado;
	}

	public void setEstado(boolean estado) {
		this.estado = estado;
	}	
	
	public static Producto buscarProducto(String nombre)
	{
		return AdministrarPersistenciaProducto.getInstancia().buscarProducto(nombre);
	}
	public void delete()
	{
		this.estado = false;
		
		AdministrarPersistenciaProducto.getInstancia().delete(this);
	}

	private String getDescripcionEstado() {
		if(this.estado) {
			return ESTADO_ACTIVO;
		}
		
		return ESTADO_INACTIVO;
	}
	
	public ProductoView getView() 
	{
		return new ProductoView(this.nombre, this.proveedor,getDescripcionEstado());
								
	}
	
	public static Vector<ProductoView> obtenerProductosView() 
	{
		return AdministrarPersistenciaProducto.getInstancia().obtenerProductosView();
	}


	
}
